
(function($){
	$.fn.pislider=function(options){
		var defaults={
			child:"child",
			slider_bar:"slider_bar",
			scrollTime:300,
			autoScroll:"false",
			autoTime:7000,
			callback:false,
		};
		
		
		
		var options=$.extend(defaults,options);
		var _this=$(this);
		var child=_this.find("."+options.child);
		var slider_bar=$("#"+options.slider_bar);
		var len=child.length-1;
		child.wrapAll("<div id=scroll_wrapper></div>");
		var width=child.width();
		var two_width=width*2;
		var thr_width=width*3;
	
		var wrap=$("#scroll_wrapper");
		wrap.css({width:thr_width+"px",left:-width+"px"});
		child.not(":first").hide();
	
		function noMove(){
			if(!wrap.is(":animated")){
				return true;
			}
			else{
				return false;
			};
		};
		
		
		child.each(function(index){
			if(index==0){
				slider_bar.append("<a href='#' class='cur'></a>");
			}
			else{
				slider_bar.append("<a href='#'></a>");
			};
		});
		var cur_a=slider_bar.find("a.cur");
		
		slider_bar.find("a").click(function(){
			var clickIndex=$(this).index();
			var nowIndex=slider_bar.find("a.cur").index();
			
			if(noMove()){
				if (clickIndex > nowIndex){
					scroll(clickIndex,two_width);
				}
				else if(clickIndex < nowIndex)
				{
					scroll(clickIndex,"0");
				}
				else
				{
					return false;
				};
			};
			return false;
		});
		
		function scroll(num,scroll_width){
			slider_bar.find("a").eq(num).addClass("cur").siblings().removeClass("cur");
			child.eq(num).show().css({left:scroll_width+"px"});
			wrap.animate({left:-scroll_width+"px"},options.scrollTime,function(){
				child.eq(num).css({left:width+"px"}).siblings().hide();
				wrap.css({left:-width+"px"});
			});
		};
		
		$("#btn_prev").click(function(){
			var curIndex=slider_bar.find("a.cur").index();
			if(noMove()){
				if (curIndex == 0){
					scroll(len,"0");
				}
				else{
					slider_bar.find("a.cur").prev("a").trigger("click");
				};
				if(options.callback){
					options.callback('prev');
				}
			};
			
			return false;
		});
	
		$("#btn_next").click(function(){
			var curIndex=slider_bar.find("a.cur").index();
			if(noMove()){
				if (curIndex == len){
					scroll("0",two_width);
				}
				else{
					slider_bar.find("a.cur").next("a").trigger("click");
				};
				if(options.callback){
					options.callback('next');
				}
			};
			
			return false;
		});
		
		if(options.autoScroll=="true"){
			autoScroll=setInterval(function(){
				$("#btn_next").trigger("click")
			},options.autoTime);
			autoPlay=function(){
				autoScroll=setInterval(function(){
				$("#btn_next").trigger("click")
				},options.autoTime);
			};
			stopPlay=function(){
				clearInterval(autoScroll);
			};
			_this.hover(stopPlay,autoPlay);
			$("#btn_prev,#btn_next").hover(stopPlay,autoPlay);
		};
	};
})(jQuery);